Skip to content

build(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /web - #17

Open
dependabot[bot] wants to merge 16 commits into
mainfrom
dependabot/npm_and_yarn/web/typescript-7.0.2
Open

build(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /web#17
dependabot[bot] wants to merge 16 commits into
mainfrom
dependabot/npm_and_yarn/web/typescript-7.0.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 23, 2026

Copy link
Copy Markdown
Contributor

Bumps typescript from 5.9.3 to 7.0.2.

Release notes

Sourced from typescript's releases.

TypeScript 7.0.2

https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/

This tag was originally released at: https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2

TypeScript 6.0.3

For release notes, check out the release announcement blog post.

Downloads are available on:

TypeScript 6.0

For release notes, check out the release announcement blog post.

Downloads are available on:

TypeScript 6.0.1 RC

For release notes, check out the release announcement blog post.

Downloads are available on:

TypeScript 6.0 Beta

For release notes, check out the release announcement.

Downloads are available on:

Commits
  • 1e4744d Merge branch 'main' into ts7-release
  • a5a219cmicrosoft/typescript-go#4558
  • ecfe30d Update status localization
  • 5de25b5 Hide executable name in TypeScript status
  • d7ce74a Show bundled TypeScript version for packaged servers
  • 29be66a Correct TS 7 release version to 7.0.2
  • ed2bd1b Merge branch 'main' into ts7-release
  • 8873075 Bump the github-actions group across 1 directory with 3 updates (microsoft/ty...
  • 9427131 Set up stable / nightly extension split, other prep (microsoft/typescript-go#...
  • d4eaca5microsoft/typescript-go#4549
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by microsoft1es, a new releaser for typescript since your current version.


claude added 10 commits August 23, 2026 14:32
…tstrap actually install deps

- web/tsconfig.json excludes test files; new tsconfig.test.json typechecks them
- HITLPopup.test.tsx: type mocks against the real PendingResponse<T>; drop an
  invented ShellAsk.reason field the server never sends
- Makefile: web-deps target with npm ci -> npm install fallback for the stale
  lockfile; bootstrap no longer short-circuits on a stale ui/assets directory
- cmd/slmcode/ui is now build output only (.gitkeep tracked); the placeholder
  page moved into Go so building the UI cannot dirty a tracked file
- release workflow verifies a real Studio bundle is embedded, strips sourcemaps,
  installs golangci-lint, and validates the tag against version.go
- install scripts: real checksum verification on Windows, no sudo for --user
  installs, loud warning when SHA256SUMS is unavailable
- slmcode update: fix the Windows asset name, downgrade guard, --user/--system
- RELEASE.md, changelog breaking-changes table, docs
@dependabot @github

dependabot Bot commented on behalf of github Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: dependencies, javascript. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

piotrlaczkowski and others added 6 commits August 24, 2026 09:40
…gs (config was already v2, tool was v1)�[0m

�[38;5;243m   2�[0m
�[38;5;243m   3�[0m   �[38;5;249m`.golangci.yml` is v2-format but the installed golangci-lint binary was�[0m
�[38;5;243m   4�[0m   �[38;5;249mv1.64, so `make check` silently never ran the real lint gate. Upgrading to�[0m
�[38;5;243m   5�[0m   �[38;5;249mv2.13.1 surfaced 95 findings: 66 staticcheck QF1012 (WriteString(Sprintf)�[0m
�[38;5;243m   6�[0m   �[38;5;249m-> Fprintf, auto-fixed) and 28 gosec findings reviewed per-file and either�[0m
�[38;5;243m   7�[0m   �[38;5;249mfixed or annotated with a `//nolint:gosec // reason` matching this repo's�[0m
�[38;5;243m   8�[0m   �[38;5;249mexisting convention.�[0m
…e reachable through a symlink mismatch�[0m

�[38;5;243m   2�[0m
�[38;5;243m   3�[0m   �[38;5;249ms.rootDir() returns the configured root as-is, but every path derived from�[0m
�[38;5;243m   4�[0m   �[38;5;249mworkspacePath()/resolveWorkspacePath() is passed through EvalSymlinks. On�[0m
�[38;5;243m   5�[0m   �[38;5;249mmacOS $TMPDIR (and thus every t.TempDir() workspace root) is itself a�[0m
�[38;5;243m   6�[0m   �[38;5;249msymlink into /private, so filepath.Rel(s.rootDir(), resolvedPath) never�[0m
�[38;5;243m   7�[0m   �[38;5;249mmatched — silently defeating every ".slmcode/ harness state" check built on�[0m
�[38;5;243m   8�[0m   �[38;5;249mtop of it:�[0m
�[38;5;243m   9�[0m
�[38;5;243m  10�[0m   �[38;5;249m  - GET /api/workspace/file?path=.slmcode/auth.json served the operator's�[0m
�[38;5;243m  11�[0m   �[38;5;249m    provider API keys over HTTP.�[0m
�[38;5;243m  12�[0m   �[38;5;249m  - GET /api/workspace/tree advertised auth.json in the listing.�[0m
�[38;5;243m  13�[0m   �[38;5;249m  - The review queue could both display and apply a write into�[0m
�[38;5;243m  14�[0m   �[38;5;249m    .slmcode/hooks.json (arbitrary-bash-on-next-run) via a crafted�[0m
�[38;5;243m  15�[0m   �[38;5;249m    .slmcode/pending/*.patch.json entry.�[0m
�[38;5;243m  16�[0m
�[38;5;243m  17�[0m   �[38;5;249mAdded Server.realRootDir(), which applies the same EvalSymlinks-or-fallback�[0m
�[38;5;243m  18�[0m   �[38;5;249mresolution as resolveWorkspacePath, and routed the three affected�[0m
�[38;5;243m  19�[0m   �[38;5;249mfilepath.Rel(s.rootDir(), ...) call sites through it.�[0m
�[38;5;243m  20�[0m
�[38;5;243m  21�[0m   �[38;5;249mCaught by pkg/server/adversarial_secrets_test.go�[0m
�[38;5;243m  22�[0m   �[38;5;249m(TestAdvNoAPIKeyLeakOverHTTP, TestAdvPendingQueueCannotTargetHarnessState),�[0m
�[38;5;243m  23�[0m   �[38;5;249mwhich were failing on main before this change.�[0m
…ed both reviewers, doubling real LLM calls�[0m

�[38;5;243m   2�[0m
�[38;5;243m   3�[0m   �[38;5;249mspeculate() cancels a losing slot's goroutine only before it reaches the�[0m
�[38;5;243m   4�[0m   �[38;5;249mexecutor; once dispatched, a fast/local executor runs it to completion�[0m
�[38;5;243m   5�[0m   �[38;5;249mregardless. reviewSlots() launched the primary reviewer and the strict�[0m
�[38;5;243m   6�[0m   �[38;5;249msecond reviewer fully concurrently with no head start, so against a fast�[0m
�[38;5;243m   7�[0m   �[38;5;249mexecutor both real LLM calls always completed before either could cancel�[0m
�[38;5;243m   8�[0m   �[38;5;249mthe other — the "1 race, up to 2 real requests" design always spent 2,�[0m
�[38;5;243m   9�[0m   �[38;5;249mnever 1.�[0m
�[38;5;243m  10�[0m
�[38;5;243m  11�[0m   �[38;5;249mThis doubled review calls per correction round, which both blew the�[0m
�[38;5;243m  12�[0m   �[38;5;249mcall-budget escalation threshold (14 real calls against a budget of 10) and�[0m
�[38;5;243m  13�[0m   �[38;5;249mduplicated review-prompt entries per round, misaligning correction-content�[0m
�[38;5;243m  14�[0m   �[38;5;249mchecks that expect one review per CORRECTOR-PASS-N.�[0m
�[38;5;243m  15�[0m
�[38;5;243m  16�[0m   �[38;5;249mAdded an optional per-slot Delay to SpecSlot, honored in speculate()'s�[0m
�[38;5;243m  17�[0m   �[38;5;249mdispatch loop: a delayed slot waits out the delay (or bails immediately if�[0m
�[38;5;243m  18�[0m   �[38;5;249mthe race is already won) before ever reaching the executor. reviewSlots()�[0m
�[38;5;243m  19�[0m   �[38;5;249mnow gives reviewer-strict a 20ms head start — well under real LLM latency,�[0m
�[38;5;243m  20�[0m   �[38;5;249mso production still races both reviewers as before, but long enough for a�[0m
�[38;5;243m  21�[0m   �[38;5;249mfast/local/test executor to let the primary win outright and skip the�[0m
�[38;5;243m  22�[0m   �[38;5;249msecond dispatch.�[0m
�[38;5;243m  23�[0m
�[38;5;243m  24�[0m   �[38;5;249mCaught by pkg/loop/retry_ladder_test.go�[0m
�[38;5;243m  25�[0m   �[38;5;249m(TestCorrectionRoundsSeeThePreviousCorrection,�[0m
�[38;5;243m  26�[0m   �[38;5;249mTestCallBudgetExhaustionEscalatesWithAUsefulState).�[0m
…he CSS bundle and its own SSE marker�[0m

�[38;5;243m   2�[0m
�[38;5;243m   3�[0m   �[38;5;249mdiscoverAssets() found the CSS <link> by taking a +-200-char window around�[0m
�[38;5;243m   4�[0m   �[38;5;249mrel="stylesheet" and grabbing the first href="/assets/..." in it. On a real�[0m
�[38;5;243m   5�[0m   �[38;5;249mVite build, the preceding <link rel="modulepreload" href="...js"> tags for�[0m
�[38;5;243m   6�[0m   �[38;5;249mroute chunks sit inside that window and their href comes first in document�[0m
�[38;5;243m   7�[0m   �[38;5;249morder, so the "CSS path" it returned was actually a JS chunk�[0m
�[38;5;243m   8�[0m   �[38;5;249m(assets/react-*.js) whenever the head had two or more modulepreload tags�[0m
�[38;5;243m   9�[0m   �[38;5;249mahead of the stylesheet link. Fixed to search only within the matched�[0m
�[38;5;243m  10�[0m   �[38;5;249m<link ...> tag's own boundaries.�[0m
�[38;5;243m  11�[0m
�[38;5;243m  12�[0m   �[38;5;249mSeparately, the JS-corpus marker list checked for the literal "/api/events"�[0m
�[38;5;243m  13�[0m   �[38;5;249msubstring, but createEventSource() builds that URL as `${BASE}/events`�[0m
�[38;5;243m  14�[0m   �[38;5;249m(BASE="/api"), so the two halves never appear contiguous in the bundle —�[0m
�[38;5;243m  15�[0m   �[38;5;249mevery other marker in the list is a bare path for the same reason (client.ts's�[0m
�[38;5;243m  16�[0m   �[38;5;249mrequest() prepends BASE separately). Changed the marker to "/events" to�[0m
�[38;5;243m  17�[0m   �[38;5;249mmatch.�[0m
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 7.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](microsoft/TypeScript@v5.9.3...v7.0.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/web/typescript-7.0.2 branch from e9ffb94 to d81ab53 Compare August 24, 2026 08:25
@piotrlaczkowski
piotrlaczkowski force-pushed the main branch 2 times, most recently from a85446a to 1d710eb Compare August 24, 2026 09:52
piotrlaczkowski added a commit that referenced this pull request Aug 27, 2026
…#22)

* build(deps): React 19, Vite 8, Vitest 4, and the GitHub Actions majors

Closes the dependabot backlog in one sweep rather than 17 sequential
rebase-and-merge cycles: every one of those PRs touches package.json or
package-lock.json, so each merge conflicts the next and the queue can only
drain one CI round at a time.

── GitHub Actions (7 PRs) ────────────────────────────────────────────────────

checkout 4→7, setup-go 5→7, setup-node 4→7, setup-python 5→7, deploy-pages 4→5,
upload-pages-artifact 3→5, action-gh-release 2→3. Mechanical; the v4/v5 majors
were also emitting Node 20 deprecation warnings on every run.

── Web (7 of 10 PRs) ─────────────────────────────────────────────────────────

react + react-dom 18.3.1→19.2.8, @types/react 19, @dnd-kit/sortable 8→10
(with core →6.3.0 for its peer), vite 5→8, @vitejs/plugin-react 4→6,
vitest + @vitest/coverage-v8 2→4, globals 15→17, eslint-plugin-react-hooks 5→7,
typescript-eslint →8.68.0.

Three things had to change for these to work:

  • React 19 types. `useRef<T>(null)` now yields `RefObject<T | null>` rather
    than `RefObject<T>` — the honest type, since a ref genuinely is null until
    its element mounts. Fixed at the three declaration sites (useStickToBottom's
    return, Modal's initialFocusRef, HITLPopup's firstActionRef) rather than
    cast away at the ~10 use sites.

  • Vite 8 builds on rolldown, which accepts `manualChunks` only as a callback
    and fails the build outright on the object form. Same three vendor chunks
    (react / dnd / icons), matched on module id.

  • `__dirname` in the vite and vitest configs, which Vite 8's native config
    loader warns about. Now `import.meta.dirname`.

── The new React Compiler lint rules are OFF, deliberately ──────────────────

eslint-plugin-react-hooks v7 enables a family of rules derived from the React
Compiler. They flag 42 EXISTING patterns across Studio — not regressions, just
constructs the compiler cannot prove safe to memoize, setState-inside-an-effect
being most of them.

They are off rather than warnings because a warning nobody can act on 42 times
is noise that trains people to ignore the whole report. Adopting them is a real
refactor of state flow across the app and deserves its own review, not a
silent rewrite of every effect riding along in a version bump.

rules-of-hooks and exhaustive-deps — the two that caught real shipped bugs —
stay errors. The gate is not weakened by one rule: eslint still reports
0 errors and the same 50 pre-existing warnings it did before.

── Three PRs are NOT adoptable, and the blocker is upstream ─────────────────

  typescript 5.9.3 → 7.0.2 (#17)
    typescript-eslint caps TypeScript at <6.1.0 — including its own 8.68.1
    alphas. Taking TS 7 means deleting TypeScript linting from the project.

  eslint 9.39.5 → 10.8.1 (#19) and @eslint/js → 10.0.1 (#11)
    eslint-plugin-jsx-a11y's newest release (6.10.2) peers eslint ^3..^9 only.
    No ESLint 10 support has shipped.

Forcing either with --legacy-peer-deps produces a tree whose linting is
silently broken, which is worse than staying on the current major. They stay
open until the ecosystem catches up.

Verified: tsc clean, eslint 0 errors, 79/79 vitest, vite build green, Go build
+ lint at the zero baseline + full suite clean, and Studio exercised in a
browser under React 19 — SSE connected, all chunks and API calls 200, the
composition preview and phase rail rendering correctly.

* ci: run Node 22, which the new web toolchain requires

Vitest 4 pulls a jsdom whose undici calls `webidl.util.markAsUncloneable`,
added in Node 22.10. On CI's Node 20 that is a TypeError thrown while merely
IMPORTING jsdom, so every test file failed to start — 9 unhandled errors and
'no tests' rather than a test failure.

Two jobs disagreed about this and the disagreement hid it: Web Frontend Check
only runs tsc and the build, so it passed; Lint & Test and Pre-commit run
`make check`, which runs vitest, and both failed. A green check on the job
named after the frontend was reporting on half of it.

`engines: node >=22.10` in web/package.json makes the floor explicit, so a
mismatch fails at install time with a readable message instead of at test time
with a TypeError from inside a transitive dependency. Docs updated from the
stale 'Node 18+' to match.
@piotrlaczkowski

Copy link
Copy Markdown
Contributor

Blocked upstream — not mergeable today.

typescript-eslint caps TypeScript at <6.1.0, and that includes its newest 8.68.1 alpha releases:

$ npm view typescript-eslint@latest peerDependencies.typescript
>=4.8.4 <6.1.0

Taking TS 7 now would mean removing typescript-eslint — i.e. deleting TypeScript linting from the project — or forcing it with --legacy-peer-deps and shipping a tree whose linting is silently broken.

Leaving this open until typescript-eslint ships TS 7 support. Everything else from the dependabot backlog landed in #22.

@dependabot @github

dependabot Bot commented on behalf of github Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

Dependabot can't resolve your JavaScript dependency files. Because of this, Dependabot cannot update this pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants